Concentre.XForms_Element_Head_Abstract = Concentre.Class(Concentre.XForms_Element_Abstract, {

		initialize: function (node, model, parent) {

			this.target = this.element = document.createElement('span');
			Concentre.htmlHead.appendChild(this.element);
			
			
			this.parent = parent;
			this.model = model;
			this.node = node;
			
			for (var i = node.attributes.length; --i>=0; ) {
	  			var a = node.attributes[i];
	   			this.attributes[QName.toHash(a.name)]=a.value;
  			}
  			
			var id = this.attributes.id;
			if (id) { 
				Concentre.objectsById[ id ]	=  this;
			}
		},

		parseChildren: function() {
			
			for (var n=this.node.lastChild; n!=null; n=n.previousSibling) {
				if (n.nodeType==1) {
					var hname = QName.toHash(n.nodeName);
				
					if (!Concentre.objectsHashTable[ hname ]) {
						throw new Exception(hname, 'Unknown Object');
					}

					var obj = new Concentre.objectsHashTable[ hname ](n, this.model, this);
					
				}
			}		
		
		},
		
		fireEvent: function(type) {
			var f = Concentre.Factory.Events;
			f.fire(this.target, type);
		},
		
		toString: function() {
			return '[ Object Concentré XForms_Element_Head_Abstract ]';
		}
});
	
	